By definition, a thin client is a computer and/or a computer program which depends on a remote computer and/or server, to fulfill traditional computational roles. In contrast, a fat client is a computer designated to provide such roles by itself. The exact roles conducted by a server may vary, for example, from providing data persistence for diskless clients to actual information processing on the client's behalf.
A thin client may also be recognized as a component of a broader computer infrastructure, such as, multiple thin clients sharing their computations with a single server. In this example, a thin client infrastructure can be seen as the amortization of a computing service across several user-interfaces. A thin client architecture may be desirable in situations where an individual fat client has much more functionality or power than its current infrastructure requires or uses.
Thin client architectures may be contrasted, for example, with grid computing. The most common type of modern thin client is a low-end computer terminal (dumb terminal) which concentrates solely on providing a graphical user interface to the end-user. The remaining functionality, in particular the operating system, is provided by the server. Historically, thin clients have their roots in multi-user systems, traditionally mainframes accessed by some sort of input/output terminal. As computer graphics matured, these text-based terminals transitioned from providing a command-line interface to a full graphical user interface, which is common on modern thin clients.
One example multi-user environment was UNIX, and fully graphical “X” terminals were relatively popular thin clients in the 1990s. Modern UNIX derivatives, such as, Berkley software distribution (BSD) and “not UNIX” (GNU)/Linux continue this multi-user tradition. Windows NT® is also capable of multi-user operations by implementation of the Citrix multi-user operating system WinFrame® into Windows NT 4.0® terminal server edition. Windows NT® then became the basis of Windows 2000® and Windows XP®. Today, Windows provides graphical terminal support via its Remote Desktop Services (RDP) component.
The term thin client was coined in 1993 by Oracle® while company founder Larry Ellison was working on the launch of Oracle 7®. At the time, Oracle wished to differentiate their server-oriented software from Microsoft's desktop-oriented products. “Thin client” was then popularized by its frequent use in Ellison's speeches and interviews about Oracle products. Microsoft remote desktop protocol (RDP) is used for communication between a server (terminal server) and a client (terminal server client). This Protocol is based on, and is an extension of, the T-120 family of protocol standards.
A multichannel capable protocol allows for separate virtual channels for carrying data. In Windows terminal server, the developers concentrated on providing reliable and fast point-to-point (single-session) communications. Only one data channel was used in this product. By implementing RDP for connectivity purposes within Windows NT terminal server, the ability to provide a large number of separate channels for data transmission was added. However, current transmission activities with this protocol are only using a single channel for keyboard, mouse, and video data. Even the product itself claims to be designed to support many different types of network topologies, however, it is only required to run over TCP/IP.
The activity involved in sending and receiving data through the RDP stack is essentially the same as the seven-layer OSI model standard for common LAN networking. In operation, data from an application or service to be transmitted is passed down through the OSI protocol stacks, sectioned, directed to a channel, encrypted, wrapped, framed, packaged onto the network protocol, and finally addressed and sent to the client. The returned data works the same way only in reverse.
Key portions of the protocol stack modifications occur between the fourth and seventh layers of the OSI model standard. By introducing an additional protocol stack this method has abstracted away the complexities of dealing with known protocol stacks. Although this approach provides thin client functionality for a wide range of compatible devices, introducing additional protocols or layers to the seven-layer OSI model standard requires these additional layers to be available at the client end. These layers require an operating system, BIOS, disk and registry. Although this technique provides an “easy to apply” way to add thin client functionality to computer systems connected to a packet-oriented network, certain devices, such as, cell phones, do not have a separate data transmission channel and/or do not have access to these types of transmission services.